0 REM STARSHIP * 1987 * ROBERT B. COOK * 100 PRINT"[147][158] P H A S E R P H I R E 102 [153]"READING DATA.... 104 POKE53280,0:POKE53281,0:POKE650,128:IFPEEK(14336)=60THEN114 106 POKE52,56:POKE56,56:CLR:REM POKE53296,3 108 POKE56334,PEEK(56334)AND254:POKE1,PEEK(1)AND251 110 FORI=0TO2047:POKEI+14336,PEEK(I+53248):NEXT 112 POKE1,PEEK(1)OR4:POKE56334,PEEK(56334)OR1:REM POKE53296,252 114 POKE53272,(PEEK(53272)AND240)+14 116 DIM GC(2,9,9),XC(2),YC(2),XD(5),YD(5),SP(2),PR(3) 118 DIM XH(5),YH(5),SH(2,5),TH(2),PL(2),PL$(2),SS$(2,5) 120 PL=2:SP(1)=48:SP(2)=200:R=RND(-TI):VC=53248:SP=53269 122 LF=54272:HF=54273:WV=54276:AT=54277:SR=54278:POKELF+24,15 124 GOSUB424:POKE2040,13 126 CL$=" [145] 128 D$[178]" 130 PL$(1)="STARFLEET ":PL$(2)="KLINGON " 132 PRINT"[145][155]NUMBER OF PLAYERS? [1-2] "; 134 GETA$:NP=VAL(A$):IFNP<1ORNP>2THEN134 136 PL$="AND":IFNP=1THENPL$="OR 138 [153]A$:[153]"LISTUSE JOYSTICK PORT TWO "PL$" * ON\CMD=ON ^ KEYS 140 PRINT"PRESS FIRE OR RETURN TO PLACE SPACESHIP AND FIRE PHASERS 142 [153]"SYSPRESS ANY KEY TO START":[151]198,0:[146]198,1 144 [143] START 146 [153]"LOADLIST (null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null)(null) 148 PRINT" [164][164][164][164][164][164][164][146][158] P H A S E R P H I R E [155][164][164][164][164][164][164][164] 150 [153]" USRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSRUSR 152 PRINT"[154][172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187][150][180][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]" 154 PRINT"[154][161]S T A R F L E E T[161][150][180][146] K L I N G O N S [161]" 156 PRINT"[154][188][146][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][199][150][200][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][198][190]" 158 PRINT"[154] [146] [150] " 160 PRINT"[154] [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164] [150][180] [164][164][164][164][164][164][164][164][164][164][164][164][164][164][164] " 162 FORI=0TO9:PRINT"[154] [170][146][193][194][195][193][194][195][193][194][195][193][194][195][193][194][195][181] [150][180][170][146][193][194][195][193][194][195][193][194][195][193][194][195][193][194][195][150][181] ":NEXT 164 PRINT"[154] [183][183][183][183][183][183][183][183][183][183][183][183][183][183][183] [150][180] [183][183][183][183][183][183][183][183][183][183][183][183][183][183][183] " 166 PRINT"[154] STARSHIP ----- [150][180] CRUISER ----- " 168 PRINT"[154] DESTROYER ---- [150][180] BOMBER ---- " 170 PRINT"[154] FIGHTER --- [150][180] FIGHTER --- " 172 PRINT"[154] SATELLITE -- [150][180] SATELLITE -- " 174 PRINT"[154][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][150][204][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175][175] 176 [143] SPACECRAFT PLACEMENT 178 PL[178]3[171]PL:M[178]1:K[178]5:[151]646,18[171]PL[172]4 180 [129]I[178]1[164]4 182 [153]CL$"POSITION "[170]PL$(PL)[170]SS$(PL,K) 184 [139]PL[178]1[176]NP[178]2[167][141]320:[137]188 186 X[178][181]([187](1)[172]10):Y[178][181]([187](1)[172]10):[145][181]([187](1)[172]2[170]1)[141]362,370 188 K[178]K[171]1:[130]:[151]SP,0 190 [153]CL$" 192 FORI=0TO9:PRINT"[154] [170][146][193][194][195][193][194][195][193][194][195][193][194][195][193][194][195][181] [150][180][170][146][193][194][195][193][194][195][193][194][195][193][194][195][193][194][195][181] ":NEXT 194 IFPL=1THEN178 196 PL=1:XC(1)=0:YC(1)=0:XC(2)=0:YC(2)=0:SP(2)=200:POKEVC+16,0 198 REM PLAYER ATTACK 200 PL=3-PL:M=2 202 PRINTCL$"[154]SCAN AND FIRE PHASERS 204 [141]320:[141]280:[129]I[178]1[164]2000:[130]:[151]SP,0:[139]TH(PL)[178]14[167]410 206 [139]NP[178]2[167]200 208 [143] COMPUTER ATTACK 210 PL[178]3[171]PL:M[178]2 212 [153]CL$"DEFSCANNING PHASERS 214 IFSH(PL,2)=1THENIFTH(3-PL)>INT(RND(1)*2+4)THENX=SX:Y=SY:TS=2:GOTO220 216 FORI=3TO5:IFSH(PL,I)=0ORSH(PL,I)=ITHENNEXT:GOTO248 218 TS=I:X=XH(TS):Y=YH(TS):IFSH(PL,TS)>1THEN236 220 FORI=0TO3:PR(I)=0:NEXT:GOSUB264 222 RD=INT(RND(1)*4):IFPR(RD)=1THEN222 224 XD(TS)=0:YD(TS)=0:PR(RD)=1 226 IFRD=0THENXD(TS)=+1:IFTX9ORTY<0ORTY>9THEN244 240 IFGC(PL,TX,TY)=1THEN244 242 X=TX:Y=TY:GOTO256 244 TX=SH(PL,TS)*-XD(TS):TY=SH(PL,TS)*-YD(TS):XD(TS)=-XD(TS):YD(TS)=-YD(TS) 246 X=X+TX:Y=Y+TY:GOTO256 248 X=INT(RND(1)*10):Y=INT(RND(1)*10) 250 IFGC(PL,X,Y)=1OR(X=SXANDY=SY)THEN248 252 GOSUB264:FORI=2TO5:IFSH(PL,I)THENNEXT 254 IFTX1THENXP=XP+1:GOTO266 268 IFX-XM=>0THENIFGC(PL,X-XM,Y)<>1THENXM=XM+1:GOTO268 270 TX=XP+XM-1:YP=1:YM=1 272 IFY+YP<=9THENIFGC(PL,X,Y+YP)<>1THENYP=YP+1:GOTO272 274 IFY-YM=>0THENIFGC(PL,X,Y-YM)<>1THENYM=YM+1:GOTO274 276 TY=YP+YM-1:RETURN 278 REM CHECK FOR HIT 280 FORI=1TO999:NEXT:PRINTCL$;:POKE646,18-PL*4 282 K=GC(PL,X,Y):GC(PL,X,Y)=1 284 IFK=0THENPRINT"MISSED "+PL$(PL)+"TARGET":RETURN 286 IFK=1ORK=9THENPRINT"PREVIOUS "+PL$(PL)+"TARGET":RETURN 288 PRINT"DIRECT HIT ON "+PL$(PL)+SS$(PL,K) 290 M=3:GOSUB398 292 SH(PL,K)=SH(PL,K)+1:TH(PL)=TH(PL)+1 294 IFPL=1THENIFSH(PL,K)<>KTHENXH(K)=X:YH(K)=Y:IFK=2THENSX=X:SY=Y 296 PRINTLEFT$(D$,20+5-K)TAB(CC(PL,6)+SH(PL,K))"*":IFSH(PL,K)<>KTHEN316 298 M=4:GOSUB398:POKE646,7 300 PRINTCL$:FORI=1TO5 302 PRINT"[145]"PL$(PL)SS$(PL,K)" ":FORJ=1TO300:NEXT 304 PRINT"[145]"PL$(PL)SS$(PL,K)" DESTROYED":FORJ=1TO500:NEXT:NEXT 306 IFK>2THEN316 308 T=3-PL:POKE646,18-T*4 310 FORI=0TO9:PRINTLEFT$(D$,9+I)TAB(CC(T,0))"[193][194][195][193][194][195][193][194][195][193][194][195][193][194][195]":FORJ=0TO9 312 IFGC(T,I,J)=1THENGC(T,I,J)=9 314 NEXT:NEXT 316 RETURN 318 REM POSITION CURSER 320 POKE198,0:X=XC(PL)/12:Y=YC(PL)/8 322 POKEVC,XC(PL)+SP(PL):POKEVC+1,YC(PL)+114:POKEVC+16,-(SP(PL)<0):POKESP,1 324 GETA$:J$=MID$(STR$(PEEK(56320)AND31),2):FORJ=1TO9STEP2 326 IFMID$("* ^ \ = "+CHR$(13),J,1)=A$ORMID$("2723302915",J,2)=J$THEN330 328 NEXT:GOTO324 330 ONJ/2+.5GOTO332,334,336,338,346 332 X=X-1*-(X>0):GOTO340 334 X=X+1*-(X<9):GOTO340 336 Y=Y-1*-(Y>0):GOTO340 338 Y=Y+1*-(Y<9) 340 IFPL=2THENXX=-(X>4):SP(2)=200-XX*256:POKEVC+16,XX 342 XC(PL)=X*12:YC(PL)=Y*8 344 POKEVC,XC(PL)+SP(PL):POKEVC+1,YC(PL)+114:GOTO324 346 IFM=1ANDGC(PL,X,Y)THEN324 348 ONMGOTO352,380 350 REM POSITION SHIP 352 POKE646,18-PL*4:PRINTCL$"WHICH DIRECTION? HORIZ OR VERT 354 [161]A$:J$[178][202]([196]([194](56320)[175]31),2):[129]J[178]1[164]3[169]2 356 [139][202]("^ = ",J,1)[178]A$[176][202]("2329",J,2)[178]J$[167]360 358 [130]:[137]354 360 [145]J[173]2[170].5[137]362,370 362 [129]J[178]0[164]K[171]1:[139]X[170]K[177]10[176]GC(PL,X[170]J,Y)[167]I[178]I[171]1:K[178]K[170]1:[142] 364 [130]:T[178]X 366 [129]J[178]0[164]K[171]1:[145](PL[178]1[176]NP[178]2)[170]2[141]380,384:GC(PL,X,Y)[178]K:X[178]X[170]1 368 [130]:X[178]T:[142] 370 [129]J[178]0[164]K[171]1:[139]Y[170]K[177]10[176]GC(PL,X,Y[170]J)[167]I[178]I[171]1:K[178]K[170]1:[142] 372 [130]:T[178]Y 374 [129]J[178]0[164]K[171]1:[145](PL[178]1[176]NP[178]2)[170]2[141]380,384:GC(PL,X,Y)[178]K:Y[178]Y[170]1 376 [130]:Y[178]T:[142] 378 [143] DISPLAY GRID MARKER 380 [139](X[175]1)[178]0[167][153][200](D$,Y[170]9)[163]CC(PL,X))"STR$":[137]384 382 [153][200](D$,Y[170]9)[163]CC(PL,X))"VAL" 384 [145]M[141]388,392:[142] 386 [143] SOUNDS 388 [151]SR,240:[151]WV,17:[151]HF,50:[151]LF,35 390 [129]L[178]1[164]15:[130]:[151]WV,16:[142] 392 [151]SR,240:[129]I[178]0[164]30:[151]LF[170]24,15[171]I[173]2 394 [151]LF,110:[151]HF,50:[151]WV,17 396 [129]J[178]1[164]10:[130]:[151]WV,16:[130]:[137]404 398 [151]54280,8:[151]54284,20:[151]54285,250:[151]WV[170]7,129 400 [129]I[178]1[164]16:[151]53280,16[171]I[172][171](M[178]4) 402 [129]J[178]1[164]99:[130]:[151]LF[170]24,16[171]I[173]2:[130]:[151]WV[170]7,128 404 [129]L[178]1[164]15:[151]LF[170]24,L:[130] 406 [129]L[178]0[164]23:[151]LF[170]L,0:[130]:[142] 408 [143]::::::::::: END GAME :::::::::::: 410 [153]CL$"CONT THE STARFLEET IS VICTORIOUS!":[137]414 412 [153]CL$"DEF THE FEDERATION IS DESTROYED! 414 FORI=1TO3000:NEXT:PRINTCL$"[158] ANOTHER BATTLE? [Y/N] 416 [161]A$:[139]A$[179][177]"Y"[175]A$[179][177]"N"[167]416 418 [139]A$[178]"Y"[167][138] 420 [153]CL$"LIST SPACE, THE FINAL FRONTIERSTOP":[128] 422 [143] DATA 424 [129]I[178]1[164]2:[129]J[178]0[164]9:[135]CC(I,J):[130]:[130] 426 [129]I[178]1[164]2:[129]J[178]2[164]5:[135]SS$(I,J):[130]:[130] 428 [129]A[178]0[164]63:[135]B:[151]14856[170]A,B:[130] 430 [129]A[178]0[164]63:[135]B:[151]832[170]A,B:[130]:[142] 432 [143] CURSOR POSITION 434 [131] 03,05,06,08,09,11,12,14,15,17 436 [131] 22,24,25,27,28,30,31,33,34,36 438 [143]:::::::::: SPACESHIPS ::::::::::: 440 [131] SATELLITE,FIGHTER,DESTROYER,STARSHIP 442 [131] SATELLITE,FIGHTER,BOMBER,CRUISER 444 [143] CUSTOM CHARACTERS 446 [131] 0,127,127,127,127,127,127,127 448 [131] 0,247,247,247,247,247,247,247 450 [131] 0,255,255,255,255,255,255,255 452 [131] 0,127,127,120,120,120,127,127 454 [131] 0,255,255,143,143,143,255,255 456 [131] 0,0,0,0,255,255,255,0 458 [131] 15,15,15,15,255,255,255,0 460 [131] 63,63,63,63,63,63,63,0 462 [143] SPRITE 464 [131] 63,224,0,96,48,0,192,24 466 [131] 0,192,24,0,192,24,0,192 468 [131] 24,0,192,24,0,96,48,0 470 [131] 63,224,0,0,0,0,0,0 472 [131] 0,0,0,0,0,0,0,0 474 [131] 0,0,0,0,0,0,0,0 476 [131] 0,0,0,0,0,0,0,0 478 [131] 0,0,0,0,0,0,0,0